Class.create(
{
	Namespace : "Animal",
	Constructor : function(name, age) {
		this._name = name;
		this._age = age;
	},
	Fields : {
		_name : null,
		_age : -1
	},
	Methods : {
		sayName : function() {
			alert(this._name);
		},
		sayAge : function() {
			alert(this._age);
		}
	},
	Statics : {
		isAnimal : function(obj) {
			return (obj instanceof Animal);
		}
	}
});

Class.create(
{
	Namespace : "wsf.Dog",
	Extends : Animal,
	Constructor : function(name, age) {
		this.Super(name, age);
	},
	Statics : {
		isDog : function(obj) {
			return (obj instanceof wsf.Dog);
		}
	}
});

var a = new Animal("Pet1", 2);
a.sayName(); // Pet1
a.sayAge(); // 2
alert(Animal.isAnimal(a)); // true
var dog1 = new wsf.Dog("Dog1", 3);
dog1.sayName(); // Dog1
dog1.sayAge(); // 3
alert(Animal.isAnimal(dog1)); // true
alert(wsf.Dog.isDog(dog1)); // true
